If this is a first time you visiting Scrolls, please register in Fight Club. If you already registered, please authorize on Fight Club start page with your login and password.
Вах! А мужики то не знают! Ну раз ты так много знаешь, то расскажи, как получить значение oUnit у элемента <area> после того, как функция отработала? Если оно не присвоено согласно условия?
я вообще тебе теорию говорил , если я правильно понял , то свойство
oAera.oUnit получает значение oObj в условном блоке
если обязательным условием наличия объекта oObj не является истина arrK[ 1 ] < 2 ) && ( arrK[ 2 ] == 0 , то присваивать свойству
oArea.oUnit = oObj; ты можешь и вне этого блока
если же oObj имеет смысл только при выполнении условия , то все зависит от типа объекта проверить свойство oArea.oUnit легко , допустим если это анси строка типа string как в сях , то сравнить можно с пустой строкой , или чем там по-умолчанию инициализируется Я не знаю как в яваскрипте , но наверное типо такого
if (oAera.oUnit != "") //или (!oAera.oUnit.empty()) { свойство содержит значение } else { пустая }
А если oAera инициализируется на стеке функции и не является ссылкой на аргумент , глобальным объектом , статическим итд , то никак естессна .. Стек то уничтожается после завершения функции Другое дело , если oObj глобальный , тада тоже можешь
Если есть возможность модифицировать функцию , то значение можно сохранить в аргументе , воспользоваться одним из механизмов для передачи не копии аргумента на стек , а его содержимого - через ссылку , указатель итд .. Опять же не знаю как в яваскрипте , но в сях это просто ..
глупый какой-то вопрос , ну или неправильно сформулированный
Как все это интересно! Но так же интересно и то, как я буду по твоему править код скриптов на сервере БК? Прежде чем все это расписывать, ты бы об этом действительно главном условии подумал.
Как все это интересно! Но так же интересно и то, как я буду по твоему править код скриптов на сервере БК? Прежде чем все это расписывать, ты бы об этом действительно главном условии подумал.
Я тебе об этом вопросе говорил =)))
А по существу первого вопроса *Можно ли вынести строку "oArea.oUnit = oObj" за пределы проверки условия?* Ответ - вынести можно за блок , тк объек с внешнего стека =))
Я тебя не понимать =)
На твой вопрос я ответил , чтобы сохранить значение , надо передавать объект для хранения в аргументе функции , это значит переписать код. Что тут не понятного? =)) И причем тут программисты БК =)) Ты хочешь , чтобы специально для тебя переписали функцию? =))
Мне кажется , это будет немного наглостью с твоей стороны , не? =))) Нормальный программист найдет work around
oArea.title = arrUnits[ i ].name;
if( ( arrK[ 1 ] < 2 ) && ( arrK[ 2 ] == 0 ) ) {
oArea.href = "jаvаscript:void(0)";
oArea.oUnit = oObj;
oArea.onclick = UnitOnClick;
}